package com.execl.client;

import com.execl.client.hystrix.UserServiceHystrix;


import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;


@FeignClient(value = "cloud-user" , fallbackFactory = UserServiceHystrix.class)
public interface UserClientService {

//    一、fallbackFactory 推荐：可以捕获异常信息并返回默认降级结果。可以打印堆栈信息。
//    二、 fallback 不推荐:不能捕获异常打印堆栈信息，不利于问题排查。
//    1、 @FeignClient类 常识基础
//    url 参数不存在，value name 代表服务名称， feign寻找nacos 注册的服务名称
//
//    @FeignClient(value = “server-feign” ,fallbackFactory = WebFeignFallbackFactory.class)
//    url 参数存在 则使用该地址 name仅代表名称
//
//    @FeignClient(name = “menuFeign”, url = “${menuFeign.url}”,fallbackFactory = MentuFeignFallback.class)
//    特别注意：Feign Get请求参数名称必须定义value


    @RequestMapping(value = "/findByName", method = RequestMethod.POST)
    public String findByName(@RequestParam("username") String username);

}
